package src.model.gameObject.eventInterfaces;

import src.model.gameObject.eventBrokers.MoveEventBroker;
import src.model.gameWorld.Position;
import src.model.gameObject.GameObject;

/**
 * This is the interface implemented by all objects that wish to fire move events.
 * This will notify the MoveEventBroker that a move happened. The MoveEventBroker will then distribute
 * the event to whatever wants to hear it. 
 * 
 * @author Tristan
 *
 */
public interface MovePublisher {
	
	/**
	 * This method informs the MoveEventBroker GameObject go moved to Position p.
	 * 
	 * @param go The GameObject that moved.
	 * @param p The Position that the GameObject moved to.
	 */
	public void publishMove(GameObject go, Position p);
}
